package com.shujia.jichu

import java.io.{BufferedReader, FileNotFoundException, FileReader}

/**
 * scala是对java语言的封装，scala中的异常类实际上就是java中的异常
 * Error
 * Exception
 *    - 编译时期异常
 *    - 运行时期异常 RuntimeException
 */
object Demo6Exception {
  def main(args: Array[String]): Unit = {
    /**
     * scala默认处理异常的方式是向外抛,如果出错，后续代码不会执行
     *
     * scala处理异常的另一种方式和java一样，也是try..catch..但是和java的写法不太一样
     */
    try {
//      val br = new BufferedReader(new FileReader("scala/data/sssss")) // FileNotFoundException
//      val array1: Array[Int] = Array(11, 22, 33) // ArrayIndexOutOfBoundsException
//      println(array1(4))
      Class.forName("com.shujia.Demo")

    } catch {
      //模式匹配
      case e:FileNotFoundException => println("文件找不到异常")
      case e:ArrayIndexOutOfBoundsException => println("数组索引越界异常")
//      case e:Exception => e.printStackTrace()
      case _ => println("其他异常")
    }finally {
      //无论有没有对应的case捕获，都会执行
      println("finally")
    }


    println("over")
  }

}
